US Logistics Network Analysis
Contents
US Logistics Network Analysis¶
import pandas as pd
import matplotlib.pyplot as plt
import geopandas as gpd
import folium
import contextily as cx
import rtree
from zlib import crc32
import hashlib
from shapely.geometry import Point, LineString, Polygon
/Users/jnapolitano/venvs/sphinx-build/lib/python3.9/site-packages/geopandas/_compat.py:111: UserWarning: The Shapely GEOS version (3.10.2-CAPI-1.16.0) is incompatible with the GEOS version PyGEOS was compiled with (3.10.1-CAPI-1.16.0). Conversions between both will be slow.
warnings.warn(
Rail Facilities by Nearest Ports¶
Intermodal Rail Data¶
## Importing our DataFrames
gisfilepath = "/Users/jnapolitano/Projects/rail-mapping/intermodal/Intermodal_Freight_Facilities_RailTOFCCOFC.geojson"
rail_to_all_df = gpd.read_file(gisfilepath)
rail_to_all_df = rail_to_all_df.to_crs(epsg=3857)
rail_to_all_df
| OBJECTID | TERMINAL | TERM_ADDRE | CITY | STATE | ZIP_CODE | PORT | DATE | RAIL_COMPA | EQUIPMENT | ACCESS_ROA | SPLC | LAT | LON | geometry | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | Albany, NY - Mechanicville | 50 Route 67 | Mechanicville | NY | 12118 | 2018-08-01T00:00:00+00:00 | NS | COFC | 171760 | 42.914715 | -73.709533 | POINT (-8205307.680 5298999.597) | ||
| 1 | 2 | Albuquerque, NM | 100 Woodward Road S.E. | Albuquerque | NM | 87102 | 2018-09-01T00:00:00+00:00 | BNSF | TOFC/COFC | 774900 | 35.047580 | -106.653344 | POINT (-11872595.946 4170348.957) | ||
| 2 | 3 | Alliance, TX | 1111 Intermodal Parkway | Haslet | TX | 76052 | 2018-09-02T00:00:00+00:00 | BNSF | TOFC/COFC | 668100 | 32.999881 | -97.347026 | POINT (-10836621.365 3895288.168) | ||
| 3 | 4 | Arcadia, WI | One Ashley Way | Arcadia | WI | 54612 | 2018-09-01T00:00:00+00:00 | CN | TOFC/COFC | South Washington St. | 328754 | 44.251243 | -91.509663 | POINT (-10186809.088 5504405.295) | |
| 4 | 5 | Atlanta, GA - Austell | 6000 Dr. Luke Glenn Garrett, Jr. Memorial Highway | Austell | GA | 30106 | 2018-08-01T00:00:00+00:00 | NS | TOFC/COFC | 456496 | 33.825798 | -84.655069 | POINT (-9423759.174 4005434.870) | ||
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 176 | 177 | Wilmington, CA - TraPac Intermodal Container T... | 630 West Harry Bridges Boulevard | Wilmington | CA | 90744 | Port of Los Angeles | 2018-12-07T00:00:00+00:00 | PHL | TOFC/COFC | 883257 | 33.770320 | -118.273289 | POINT (-13166122.306 3998003.151) | |
| 177 | 178 | Wilmington, NC - Container Terminal | 1 Shipyard Boulevard | Wilmington | NC | 28401 | Port of Wilmington | 2018-09-11T00:00:00+00:00 | CSX | COFC | 409160 | 34.191224 | -77.952419 | POINT (-8677623.589 4054507.730) | |
| 178 | 179 | Winter Haven, FL - Central Florida Intermodal ... | 3935 Intermodal Drive | Winter Haven | FL | 33884 | 2018-09-11T00:00:00+00:00 | CSX, EVWR | COFC | 497540 | 27.939953 | -81.693226 | POINT (-9094048.320 3241405.344) | ||
| 179 | 180 | Worcester, MA | 165 Grafton Street | Worcester | MA | 01604 | 2018-09-11T00:00:00+00:00 | CSX | TOFC/COFC | 145460 | 42.259951 | -71.789244 | POINT (-7991542.086 5199998.731) | ||
| 180 | 181 | Wylie, TX | 2800 State Highway 78 North | Wylie | TX | 75098 | 2018-08-03T00:00:00+00:00 | KCS | TOFC/COFC | 663676 | 33.025555 | -96.509452 | POINT (-10743383.053 3898696.454) |
181 rows × 15 columns
Major Ports Data¶
gisfilepath = "/Users/jnapolitano/Projects/rail-mapping/shipping/Major_Ports.geojson"
major_ports_df = gpd.read_file(gisfilepath)
major_ports_df = major_ports_df.to_crs(epsg=3857)
major_ports_df
| OBJECTID_1 | OBJECTID | ID | PORT | PORT_NAME | GRAND_TOTA | FOREIGN_TO | IMPORTS | EXPORTS | DOMESTIC | geometry | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 1 | 124 | C4947 | Unalaska Island, AK | 1652281 | 1236829 | 426251 | 810578 | 415452 | POINT (-18806114.399 7124760.122) |
| 1 | 2 | 2 | 85 | C4410 | Kahului, Maui, HI | 3615449 | 20391 | 20391 | 0 | 3595058 | POINT (-17418472.419 2379793.012) |
| 2 | 3 | 3 | 116 | C4405 | Kawaihae Harbor, HI | 2034621 | 0 | 0 | 0 | 2034621 | POINT (-17347283.605 2277507.024) |
| 3 | 4 | 4 | 113 | C4430 | Nawiliwili, Kauai, HI | 2069212 | 22066 | 22066 | 0 | 2047146 | POINT (-17739105.948 2506856.666) |
| 4 | 5 | 5 | 52 | C4458 | Barbers Point, Oahu, HI | 9854176 | 7384757 | 6683744 | 701013 | 2469419 | POINT (-17600602.238 2427355.584) |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 145 | 146 | 146 | 145 | C4240 | Sacramento, CA | 898044 | 898044 | 733008 | 165036 | 0 | POINT (-13625399.029 4552149.948) |
| 146 | 147 | 147 | 142 | I2094 | Morgan City, LA, Port of | 991600 | 51 | 51 | 0 | 991549 | POINT (-10161297.777 3429249.067) |
| 147 | 148 | 148 | 144 | I6111 | Little Rock, AR, Port of | 914190 | 0 | 0 | 0 | 914190 | POINT (-10281276.811 4135486.697) |
| 148 | 149 | 149 | 150 | I6112 | Fort Smith, AR, Port of | 788939 | 0 | 0 | 0 | 788939 | POINT (-10506939.342 4224548.117) |
| 149 | 150 | 150 | 149 | L3230 | Buffalo, NY | 791358 | 244512 | 244512 | 0 | 546846 | POINT (-8784162.687 5302483.766) |
150 rows × 11 columns
Hashing Ports to Unique IDS¶
def bytes_to_float(b):
return float(crc32(b) & 0xffffffff) / 2**32
def str_to_float(s, encoding="utf-8"):
return bytes_to_float(s.encode(encoding))
major_ports_df['hash'] = major_ports_df['PORT_NAME']
major_ports_df['hash'] = major_ports_df['hash'].map(lambda x: str_to_float(x))
#major_transit_nodes.hash.apply(lambda x: str_to_float(x))
major_ports_df['port_geo']=major_ports_df['geometry']
major_ports_df
| OBJECTID_1 | OBJECTID | ID | PORT | PORT_NAME | GRAND_TOTA | FOREIGN_TO | IMPORTS | EXPORTS | DOMESTIC | geometry | hash | port_geo | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 1 | 124 | C4947 | Unalaska Island, AK | 1652281 | 1236829 | 426251 | 810578 | 415452 | POINT (-18806114.399 7124760.122) | 0.101950 | POINT (-18806114.399 7124760.122) |
| 1 | 2 | 2 | 85 | C4410 | Kahului, Maui, HI | 3615449 | 20391 | 20391 | 0 | 3595058 | POINT (-17418472.419 2379793.012) | 0.204192 | POINT (-17418472.419 2379793.012) |
| 2 | 3 | 3 | 116 | C4405 | Kawaihae Harbor, HI | 2034621 | 0 | 0 | 0 | 2034621 | POINT (-17347283.605 2277507.024) | 0.137471 | POINT (-17347283.605 2277507.024) |
| 3 | 4 | 4 | 113 | C4430 | Nawiliwili, Kauai, HI | 2069212 | 22066 | 22066 | 0 | 2047146 | POINT (-17739105.948 2506856.666) | 0.071730 | POINT (-17739105.948 2506856.666) |
| 4 | 5 | 5 | 52 | C4458 | Barbers Point, Oahu, HI | 9854176 | 7384757 | 6683744 | 701013 | 2469419 | POINT (-17600602.238 2427355.584) | 0.215625 | POINT (-17600602.238 2427355.584) |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 145 | 146 | 146 | 145 | C4240 | Sacramento, CA | 898044 | 898044 | 733008 | 165036 | 0 | POINT (-13625399.029 4552149.948) | 0.950360 | POINT (-13625399.029 4552149.948) |
| 146 | 147 | 147 | 142 | I2094 | Morgan City, LA, Port of | 991600 | 51 | 51 | 0 | 991549 | POINT (-10161297.777 3429249.067) | 0.035685 | POINT (-10161297.777 3429249.067) |
| 147 | 148 | 148 | 144 | I6111 | Little Rock, AR, Port of | 914190 | 0 | 0 | 0 | 914190 | POINT (-10281276.811 4135486.697) | 0.655102 | POINT (-10281276.811 4135486.697) |
| 148 | 149 | 149 | 150 | I6112 | Fort Smith, AR, Port of | 788939 | 0 | 0 | 0 | 788939 | POINT (-10506939.342 4224548.117) | 0.384834 | POINT (-10506939.342 4224548.117) |
| 149 | 150 | 150 | 149 | L3230 | Buffalo, NY | 791358 | 244512 | 244512 | 0 | 546846 | POINT (-8784162.687 5302483.766) | 0.169185 | POINT (-8784162.687 5302483.766) |
150 rows × 13 columns
Creating Ports Map¶
major_ports_map =major_ports_df.explore(
column="hash", # make choropleth based on "PORT_NAME" column
popup=False, # show all values in popup (on click)
tiles="CartoDB positron", # use "CartoDB positron" tiles
cmap='Reds', # use "Set1" matplotlib colormap
#style_kwds=dict(color="black"),
marker_kwds= dict(radius=6),
tooltip=['PORT_NAME','GRAND_TOTA'],
legend =False, # use black outline)
categorical=True,
)
major_ports_map
Make this Notebook Trusted to load map: File -> Trust Notebook
Intermodal Rail Stations Joined by Nearest Major Port¶
major_transit_nodes = rail_to_all_df.sjoin_nearest(major_ports_df)
major_transit_nodes.drop(columns=['OBJECTID_right', 'index_right','OBJECTID_1','OBJECTID_left','PORT_left'], inplace=True)
print(major_transit_nodes.columns)
major_transit_nodes
Index(['TERMINAL', 'TERM_ADDRE', 'CITY', 'STATE', 'ZIP_CODE', 'DATE',
'RAIL_COMPA', 'EQUIPMENT', 'ACCESS_ROA', 'SPLC', 'LAT', 'LON',
'geometry', 'ID', 'PORT_right', 'PORT_NAME', 'GRAND_TOTA', 'FOREIGN_TO',
'IMPORTS', 'EXPORTS', 'DOMESTIC', 'hash', 'port_geo'],
dtype='object')
| TERMINAL | TERM_ADDRE | CITY | STATE | ZIP_CODE | DATE | RAIL_COMPA | EQUIPMENT | ACCESS_ROA | SPLC | ... | ID | PORT_right | PORT_NAME | GRAND_TOTA | FOREIGN_TO | IMPORTS | EXPORTS | DOMESTIC | hash | port_geo | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Albany, NY - Mechanicville | 50 Route 67 | Mechanicville | NY | 12118 | 2018-08-01T00:00:00+00:00 | NS | COFC | 171760 | ... | 73 | C505 | Albany, NY | 5712209 | 942081 | 681283 | 260798 | 4770128 | 0.997843 | POINT (-8209607.618 5257745.826) | |
| 165 | Syracuse, NY | 600 Fremont Road | Syracuse | NY | 13057 | 2018-09-11T00:00:00+00:00 | CSX | TOFC/COFC | Old Fairmont Rd. | 182340 | ... | 73 | C505 | Albany, NY | 5712209 | 942081 | 681283 | 260798 | 4770128 | 0.997843 | POINT (-8209607.618 5257745.826) |
| 1 | Albuquerque, NM | 100 Woodward Road S.E. | Albuquerque | NM | 87102 | 2018-09-01T00:00:00+00:00 | BNSF | TOFC/COFC | 774900 | ... | 128 | C4100 | San Diego, CA | 1572162 | 1301084 | 1244610 | 56474 | 271078 | 0.839324 | POINT (-13044239.820 3856637.459) | |
| 136 | Phoenix, AZ - Glendale | 5281 North Tom Murray Avenue | Glendale | AZ | 85301 | 2018-09-17T00:00:00+00:00 | BNSF | COFC | 797000 | ... | 128 | C4100 | San Diego, CA | 1572162 | 1301084 | 1244610 | 56474 | 271078 | 0.839324 | POINT (-13044239.820 3856637.459) | |
| 175 | Tucson, AZ | 6800 E. Century Park Drive | Tucson | AZ | 85706 | 2018-09-02T00:00:00+00:00 | UP | COFC | Third Driveway Entrance | 799000 | ... | 128 | C4100 | San Diego, CA | 1572162 | 1301084 | 1244610 | 56474 | 271078 | 0.839324 | POINT (-13044239.820 3856637.459) |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 166 | Tacoma, WA - North Yard | 711 Port of Tacoma Road | Tacoma | WA | 98421 | 2018-09-26T00:00:00+00:00 | BNSF | COFC | 846203 | ... | 32 | C4720 | Tacoma, WA | 22849184 | 19624407 | 6814144 | 12810263 | 3224777 | 0.051879 | POINT (-13631238.627 5989482.786) | |
| 167 | Tacoma, WA - South Yard | 1101 Milwaukee Way | Tacoma | WA | 98421 | 2018-09-27T00:00:00+00:00 | BNSF | COFC | 846212 | ... | 32 | C4720 | Tacoma, WA | 22849184 | 19624407 | 6814144 | 12810263 | 3224777 | 0.051879 | POINT (-13631238.627 5989482.786) | |
| 168 | Tacoma, WA - Tacoma South (TacSim) | 1738 Milwaukee Way | Tacoma | WA | 98421 | 2018-09-01T00:00:00+00:00 | UP | COFC | 846214 | ... | 32 | C4720 | Tacoma, WA | 22849184 | 19624407 | 6814144 | 12810263 | 3224777 | 0.051879 | POINT (-13631238.627 5989482.786) | |
| 169 | Tampa, FL | 1901 North 62nd Street | Tampa | FL | 33619 | 2018-09-11T00:00:00+00:00 | CSX | COFC | 497800 | ... | 22 | C2021 | Tampa, FL | 31006487 | 12216828 | 8053152 | 4163676 | 18789659 | 0.605582 | POINT (-9186345.981 3221936.932) | |
| 178 | Winter Haven, FL - Central Florida Intermodal ... | 3935 Intermodal Drive | Winter Haven | FL | 33884 | 2018-09-11T00:00:00+00:00 | CSX, EVWR | COFC | 497540 | ... | 22 | C2021 | Tampa, FL | 31006487 | 12216828 | 8053152 | 4163676 | 18789659 | 0.605582 | POINT (-9186345.981 3221936.932) |
181 rows × 23 columns
Rail Facilities by Port Interactive Map¶
major_rail_facilities_map =major_transit_nodes.explore(
column="hash", # make choropleth based on "PORT_NAME" column
popup=False, # show all values in popup (on click)
tiles="CartoDB positron", # use "CartoDB positron" tiles
cmap='Reds', # use "Set1" matplotlib colormap
#style_kwds=dict(color="black"),
marker_kwds= dict(radius=6),
tooltip=['PORT_NAME','GRAND_TOTA'],
legend =False, # use black outline)
categorical=True,
legend_kwds={'label': "Population by Country",
'orientation': "horizontal"}
)
major_rail_facilities_map
Make this Notebook Trusted to load map: File -> Trust Notebook
Air Freight to Truck Facilites by Major Port¶
gisfilepath = "/Users/jnapolitano/Projects/rail-mapping/intermodal/Intermodal_Freight_Facilities_Air-to-Truck.geojson"
air_freight_to_truck_df = gpd.read_file(gisfilepath)
air_freight_to_truck_df = air_freight_to_truck_df.to_crs(epsg=3857)
air_freight_to_truck_df
| OBJECTID | LOCID | FACILITY_C | DATE | EST_AREA | geometry | |
|---|---|---|---|---|---|---|
| 0 | 1 | PIT | Delta Air Lines; United Parcel Service | 09/2018 | 74000 | POINT (-8932265.943 4939618.132) |
| 1 | 2 | PIT | Federal Express | 09/2018 | 73000 | POINT (-8931996.093 4939519.257) |
| 2 | 3 | PIT | 09/2018 | 65000 | POINT (-8931632.274 4939487.129) | |
| 3 | 4 | PIT | 09/2018 | 55000 | POINT (-8930019.150 4938284.560) | |
| 4 | 5 | RDU | Federal Express | 09/2018 | 63000 | POINT (-8769327.059 4285470.308) |
| ... | ... | ... | ... | ... | ... | ... |
| 399 | 400 | IAH | British Airways; Swissport Cargo Services | 12/2018 | 88000 | POINT (-10609992.124 3503138.495) |
| 400 | 401 | IAH | Air General; American Airlines; Dachser | 12/2018 | 70000 | POINT (-10609855.207 3503137.177) |
| 401 | 402 | IAH | Cargo Airport Services Texas; Cargolux Airline... | 12/2018 | 149000 | POINT (-10609937.414 3502943.849) |
| 402 | 403 | IAH | Singapore Airlines | 12/2018 | 149000 | POINT (-10609922.972 3502538.518) |
| 403 | 404 | IAH | United Air Lines | 12/2018 | 110000 | POINT (-10613775.002 3500908.358) |
404 rows × 6 columns
Air Freight Hubs joined by Major Ports¶
major_air_freight = air_freight_to_truck_df.sjoin_nearest(major_ports_df)
major_air_freight.drop(columns=['OBJECTID_right', 'index_right','OBJECTID_1','OBJECTID_left'], inplace=True)
print(major_air_freight.columns)
major_air_freight
Index(['LOCID', 'FACILITY_C', 'DATE', 'EST_AREA', 'geometry', 'ID', 'PORT',
'PORT_NAME', 'GRAND_TOTA', 'FOREIGN_TO', 'IMPORTS', 'EXPORTS',
'DOMESTIC', 'hash', 'port_geo'],
dtype='object')
| LOCID | FACILITY_C | DATE | EST_AREA | geometry | ID | PORT | PORT_NAME | GRAND_TOTA | FOREIGN_TO | IMPORTS | EXPORTS | DOMESTIC | hash | port_geo | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | PIT | Delta Air Lines; United Parcel Service | 09/2018 | 74000 | POINT (-8932265.943 4939618.132) | 33 | I2358 | Pittsburgh, PA | 21567015 | 0 | 0 | 0 | 21567015 | 0.202015 | POINT (-8907353.734 4930431.675) |
| 1 | PIT | Federal Express | 09/2018 | 73000 | POINT (-8931996.093 4939519.257) | 33 | I2358 | Pittsburgh, PA | 21567015 | 0 | 0 | 0 | 21567015 | 0.202015 | POINT (-8907353.734 4930431.675) |
| 2 | PIT | 09/2018 | 65000 | POINT (-8931632.274 4939487.129) | 33 | I2358 | Pittsburgh, PA | 21567015 | 0 | 0 | 0 | 21567015 | 0.202015 | POINT (-8907353.734 4930431.675) | |
| 3 | PIT | 09/2018 | 55000 | POINT (-8930019.150 4938284.560) | 33 | I2358 | Pittsburgh, PA | 21567015 | 0 | 0 | 0 | 21567015 | 0.202015 | POINT (-8907353.734 4930431.675) | |
| 4 | RDU | Federal Express | 09/2018 | 63000 | POINT (-8769327.059 4285470.308) | 70 | C766 | Wilmington, NC | 6039927 | 5660231 | 3377654 | 2282577 | 379696 | 0.357411 | POINT (-8677794.465 4060976.646) |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 388 | HNL | Alaska Airlines | 12/2018 | 42000 | POINT (-17578969.072 2429783.328) | 41 | C4420 | Honolulu, HI | 15181890 | 1439915 | 1146253 | 293662 | 13741975 | 0.314386 | POINT (-17574197.255 2429014.029) |
| 389 | HNL | United Parcel Service | 12/2018 | 30000 | POINT (-17578874.086 2429878.269) | 41 | C4420 | Honolulu, HI | 15181890 | 1439915 | 1146253 | 293662 | 13741975 | 0.314386 | POINT (-17574197.255 2429014.029) |
| 390 | HNL | American Airlines; Delta Air Lines | 12/2018 | 20000 | POINT (-17578581.567 2431567.128) | 41 | C4420 | Honolulu, HI | 15181890 | 1439915 | 1146253 | 293662 | 13741975 | 0.314386 | POINT (-17574197.255 2429014.029) |
| 391 | HSV | 12/2018 | 130000 | POINT (-9658266.854 4115396.770) | 119 | I2371 | Guntersville, AL | 1918572 | 0 | 0 | 0 | 1918572 | 0.337449 | POINT (-9605481.230 4079119.379) | |
| 392 | HSV | Panalpina | 12/2018 | 189000 | POINT (-9658200.443 4114983.062) | 119 | I2371 | Guntersville, AL | 1918572 | 0 | 0 | 0 | 1918572 | 0.337449 | POINT (-9605481.230 4079119.379) |
409 rows × 15 columns
Air Freight Hubs by Nearest Major Port Port Map¶
major_air_freight.explore(
column="hash", # make choropleth based on "PORT_NAME" column
popup=False, # show all values in popup (on click)
tiles="CartoDB positron", # use "CartoDB positron" tiles
cmap='Reds', # use "Set1" matplotlib colormap
#style_kwds=dict(color="black"),
marker_kwds= dict(radius=6),
tooltip=['PORT_NAME','FACILITY_C','LOCID'],
legend =False, # use black outline)
categorical=True)
Make this Notebook Trusted to load map: File -> Trust Notebook
Shipping Networks¶
Shipping Data¶
gisfilepath = "//Users/jnapolitano/Projects/rail-mapping/shipping/Navigable_Waterway_Lines.geojson"
shipping_network = gpd.read_file(gisfilepath)
shipping_network = shipping_network.to_crs(epsg=3857)
shipping_network
| OBJECTID | ID | LENGTH | DIR | LINKNUM | ANODE | BNODE | LINKNAME | RIVERNAME | AMILE | ... | NUM_PAIRS | WHO_MOD | DATE_MOD | HEADING | STATE | FIPS | FIPS2 | NON_US | Shape_Length | geometry | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 13814 | 2237.99 | 0 | 887200 | 58220 | 56950 | HONOLULU, OAHU, HI-WAKE I, UM SPINE | PACIFIC DEEP WATER SPINE | 0.0 | ... | 2 | V A | 01201997 | W | XX | 99 | 00 | PC | 3.623416e+07 | LINESTRING (18657013.074 2207752.325, -1757651... |
| 1 | 2 | 13820 | 1312.41 | 0 | 820800 | 51880 | 51990 | MITROFANIA BAY, AK | METROFANIA BAY | 0.0 | ... | 6 | V | 02051997 | E | AK | 02 | 00 | 4.193663e+07 | LINESTRING (-17677356.025 7542570.542, -176582... | |
| 2 | 3 | 13857 | 36.37 | 0 | 886900 | 58330 | 58320 | COLUMBIA RIVER ENTRANCE, OR & WA | SPARKMAN-YBOR CHANNELS | 0.0 | ... | 2 | V A | 09141998 | E | XX | 99 | 00 | XX | 6.541705e+04 | LINESTRING (14304554.567 3061141.039, 14354158... |
| 3 | 4 | 13863 | 41.69 | 0 | 888500 | 58240 | 58230 | APRA HARBOR, GUAM ISLAND, GU | APRA HARBOR | 0.0 | ... | 2 | V A | 01201997 | E | GU | 66 | 00 | 6.903228e+04 | LINESTRING (16100505.308 1511190.911, 16167174... | |
| 4 | 5 | 13870 | 121.75 | 0 | 889400 | 58520 | 58230 | SAIPAN | MARIANA ISLAND | 0.0 | ... | 2 | W | 04202017 | S | MP | 69 | 00 | 2.034368e+05 | LINESTRING (16223020.645 1715270.170, 16220315... | |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 6868 | 6869 | 372649 | 4.44 | 0 | 207800 | 8300 | 38110 | ATL DEEP WATER SPINE ACCESS | ATLANTIC DEEP WATER ACCESS | 0.0 | ... | 2 | V A | 01201997 | S | XX | 99 | 00 | AT | 1.001580e+04 | LINESTRING (-7529113.797 5524979.655, -7526001... |
| 6869 | 6870 | 372655 | 10.23 | 0 | 352900 | 8310 | 8300 | JONESPORT, ME | JONESPORT HARBOR | 0.0 | ... | 3 | R | S | ME | 23 | 00 | 2.310771e+04 | LINESTRING (-7526965.331 5547218.511, -7530662... | ||
| 6870 | 6871 | 372667 | 6.58 | 0 | 224100 | 36970 | 36960 | BEALS HARBOR,ME | BEALS HARBOR | 4.0 | ... | 3 | R | S | ME | 23 | 00 | 1.485327e+04 | LINESTRING (-7523701.444 5542231.099, -7521614... | ||
| 6871 | 6872 | 372678 | 7.41 | 0 | 223800 | 37000 | 36990 | BEAL & GREAT WASS ISLANDS, ME | EASTERN BAY | 0.0 | ... | 2 | R | S | ME | 23 | 00 | 1.673232e+04 | LINESTRING (-7522918.868 5545348.106, -7516423... | ||
| 6872 | 6873 | 372684 | 4.82 | 0 | 223500 | 37030 | 37020 | HEAD HARBOR, ME | HEAD HARBOR | 0.0 | ... | 2 | R | S | ME | 23 | 00 | 1.087250e+04 | LINESTRING (-7516772.919 5542045.392, -7513218... |
6873 rows × 31 columns
Shipping Networks by Major Ports¶
port_shipping = shipping_network.sjoin_nearest(major_ports_df)
port_shipping.drop(columns = ['OBJECTID_left','DIR', 'ANODE', 'BNODE', 'ID_left', 'AMILE', 'BMILE', 'LENGTH1', 'LENGTH_SRC', 'SHAPE_SRC', 'GEO_CLASS', 'FUNC_CLASS','OBJECTID_1','CHART_ID', 'index_right', 'NUM_PAIRS', 'CHART_ID', 'DATE_MOD', 'WHO_MOD', 'OBJECTID_right','ID_right'],inplace=True)
print(port_shipping.columns)
port_shipping
Index(['LENGTH', 'LINKNUM', 'LINKNAME', 'RIVERNAME', 'LINKTYPE', 'CTRL_DEPTH',
'WATERWAY', 'WTWY_TYPE', 'HEADING', 'STATE', 'FIPS', 'FIPS2', 'NON_US',
'Shape_Length', 'geometry', 'PORT', 'PORT_NAME', 'GRAND_TOTA',
'FOREIGN_TO', 'IMPORTS', 'EXPORTS', 'DOMESTIC', 'hash', 'port_geo'],
dtype='object')
| LENGTH | LINKNUM | LINKNAME | RIVERNAME | LINKTYPE | CTRL_DEPTH | WATERWAY | WTWY_TYPE | HEADING | STATE | ... | geometry | PORT | PORT_NAME | GRAND_TOTA | FOREIGN_TO | IMPORTS | EXPORTS | DOMESTIC | hash | port_geo | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2237.99 | 887200 | HONOLULU, OAHU, HI-WAKE I, UM SPINE | PACIFIC DEEP WATER SPINE | CORPS | 99 | 9246 | 5 | W | XX | ... | LINESTRING (18657013.074 2207752.325, -1757651... | C4420 | Honolulu, HI | 15181890 | 1439915 | 1146253 | 293662 | 13741975 | 0.314386 | POINT (-17574197.255 2429014.029) |
| 39 | 2616.09 | 887600 | PAGO PAGO HARBOR, AMERICAN SAMOA I | PACIFIC DEEP WATER SPINE | CORPS | 40 | 4486 | 5 | E | XX | ... | LINESTRING (-17576512.700 2422111.245, -190123... | C4420 | Honolulu, HI | 15181890 | 1439915 | 1146253 | 293662 | 13741975 | 0.314386 | POINT (-17574197.255 2429014.029) |
| 40 | 2040.92 | 887700 | CANTON ISLAND PHOENIX GROUP | PACIFIC DEEP WATER SPINE | CORPS | 35 | 4438 | 5 | S | XX | ... | LINESTRING (-17576512.700 2422111.245, -193695... | C4420 | Honolulu, HI | 15181890 | 1439915 | 1146253 | 293662 | 13741975 | 0.314386 | POINT (-17574197.255 2429014.029) |
| 41 | 722.38 | 887300 | JOHNSTON ISLAND, HI | PACIFIC DEEP WATER SPINE | CORPS | 35 | 4436 | 5 | E | XX | ... | LINESTRING (-18701674.453 1920825.040, -175765... | C4420 | Honolulu, HI | 15181890 | 1439915 | 1146253 | 293662 | 13741975 | 0.314386 | POINT (-17574197.255 2429014.029) |
| 122 | 22.69 | 896100 | KALAUPAPA HARBOR, MOLOKAI, HI | KALAUPAPA HARBOR | CORPS | 12 | 4460 | 1 | W | HI | ... | LINESTRING (-17475957.804 2414714.487, -174860... | C4420 | Honolulu, HI | 15181890 | 1439915 | 1146253 | 293662 | 13741975 | 0.314386 | POINT (-17574197.255 2429014.029) |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 5914 | 0.99 | 436100 | SCHUYLKILL CANAL, PA | SCHUYLKILL CANAL | CORPS | 12 | 254 | 9 | W | PA | ... | LINESTRING (-8368689.850 4850736.303, -8370165... | C552 | Philadelphia, PA | 26656373 | 16188350 | 15136804 | 1051546 | 10468023 | 0.217248 | POINT (-8371469.609 4854152.426) |
| 5915 | 1.02 | 4440000 | SCHUYLKILL RIVER, PA | SCHUYLKILL RIVER | CWIS | 26 | 557 | 6 | S | PA | ... | LINESTRING (-8372532.376 4855477.977, -8372632... | C552 | Philadelphia, PA | 26656373 | 16188350 | 15136804 | 1051546 | 10468023 | 0.217248 | POINT (-8371469.609 4854152.426) |
| 5916 | 1.57 | 4450000 | SCHUYLKILL RIVER, PA | SCHUYLKILL RIVER | CWIS | 22 | 557 | 6 | S | PA | ... | LINESTRING (-8370893.976 4857560.431, -8371269... | C552 | Philadelphia, PA | 26656373 | 16188350 | 15136804 | 1051546 | 10468023 | 0.217248 | POINT (-8371469.609 4854152.426) |
| 5917 | 3.31 | 436300 | DELAWARE R, PHILA, PA (TO THE SEA) | DELAWARE RIVER | CORPS | 40 | 5250 | 6 | W | NJ | ... | LINESTRING (-8364429.653 4849662.658, -8364809... | C552 | Philadelphia, PA | 26656373 | 16188350 | 15136804 | 1051546 | 10468023 | 0.217248 | POINT (-8371469.609 4854152.426) |
| 5918 | 5.18 | 436400 | BIG TIMBER CREEK, NJ | BIG TIMBER CREEK | CORPS | 10 | 259 | 6 | N | NJ | ... | LINESTRING (-8358718.740 4843349.213, -8358942... | C552 | Philadelphia, PA | 26656373 | 16188350 | 15136804 | 1051546 | 10468023 | 0.217248 | POINT (-8371469.609 4854152.426) |
6902 rows × 24 columns
Shipping Routes by Major Port Interactive Map¶
port_shipping.explore(
column="hash", # make choropleth based on "PORT_NAME" column
popup=False, # show all values in popup (on click)
tiles="CartoDB positron", # use "CartoDB positron" tiles
cmap='Reds', # use "Set1" matplotlib colormap
#style_kwds=dict(color="black"),
marker_kwds= dict(radius=6),
tooltip=['PORT_NAME','RIVERNAME'],
legend =False, # use black outline)
categorical=True)
Make this Notebook Trusted to load map: File -> Trust Notebook